perror()
এবং strerror()
এর মাধ্যমে এরর মেসেজ জেনারেশনসি প্রোগ্রামিং ভাষায়, perror()
এবং strerror()
ফাংশনগুলো ব্যবহার করে এরর মেসেজ জেনারেট করা যায়। এই ফাংশনগুলো সিস্টেমের ত্রুটি বা সমস্যা সংক্রান্ত বিস্তারিত তথ্য প্রদানে সহায়ক, যেমন ফাইল খোলার সময় ত্রুটি বা মেমোরি বরাদ্দে ত্রুটি ইত্যাদি।
এই ফাংশনগুলোর মধ্যে পার্থক্য হল perror()
ত্রুটির সাথে যুক্ত একটি বর্ণনা মুদ্রণ করে, যেখানে strerror()
নির্দিষ্ট ত্রুটি কোডের জন্য একটি স্ট্রিং রিটার্ন করে।
perror()
– এরর মেসেজের সাথে বর্ণনা মুদ্রণperror()
ফাংশনটি একটি স্ট্রিং ইনপুট নেয় এবং যদি পূর্বে কোনো ত্রুটি ঘটে থাকে (যেমন, সিস্টেম কল ত্রুটি), তবে সেই ত্রুটির বর্ণনা সহ একটি এরর মেসেজ মুদ্রণ করে। এটি স্ট্যান্ডার্ড ত্রুটি আউটপুটে (stderr) ত্রুটির বর্ণনা প্রিন্ট করে।
void perror(const char *str);
str
– একটি স্ট্রিং, যা ত্রুটির আগে মুদ্রণ করা হয়। সাধারণত এটি একটি সংক্ষিপ্ত বর্ণনা বা ফাংশন নাম হতে পারে।#include <stdio.h>
#include <stdlib.h>
int main() {
FILE *file = fopen("nonexistent_file.txt", "r");
if (file == NULL) {
perror("Error opening file");
return 1;
}
fclose(file);
return 0;
}
এখানে, fopen()
ফাংশনটি যদি nonexistent_file.txt
ফাইলটি খোলার সময় ত্রুটি ঘটে, তবে perror()
ফাংশনটি ত্রুটির একটি বর্ণনা সহ একটি মেসেজ মুদ্রণ করবে:
Error opening file: No such file or directory
strerror()
– ত্রুটি কোডের বর্ণনা পাওয়াstrerror()
ফাংশনটি একটি ত্রুটি কোড নিয়ে সেই ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। এটি সাধারণত errno
ভেরিয়েবলের মান দিয়ে কাজ করে, যা সিস্টেম কল বা লাইব্রেরি ফাংশন থেকে সঠিক ত্রুটি কোড ধারণ করে।
char *strerror(int errnum);
errnum
– ত্রুটি কোড, যা সাধারণত errno
থেকে পাওয়া যায়।#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main() {
FILE *file = fopen("nonexistent_file.txt", "r");
if (file == NULL) {
printf("Error opening file: %s\n", strerror(errno));
return 1;
}
fclose(file);
return 0;
}
এখানে strerror(errno)
ফাংশনটি errno
ভেরিয়েবল থেকে ত্রুটি কোড নিয়ে সেই ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। যদি fopen()
ফাংশনটি কোনো ত্রুটি সৃষ্টি করে, তবে আউটপুট হবে:
Error opening file: No such file or directory
perror()
বনাম strerror()
বৈশিষ্ট্য | perror() | strerror() |
---|---|---|
কাজ | ত্রুটির বর্ণনা সহ একটি স্ট্রিং আউটপুট করে | ত্রুটি কোডের জন্য একটি বর্ণনা হিসেবে স্ট্রিং রিটার্ন করে |
ইনপুট | একটি স্ট্রিং যা ত্রুটির বর্ণনা প্রদান করে | ত্রুটি কোড (errno ) |
আউটপুট | স্ট্যান্ডার্ড এরর আউটপুটে মেসেজ মুদ্রণ করে | একটি স্ট্রিং রিটার্ন করে যা ত্রুটির বর্ণনা প্রদান করে |
ব্যবহার | ত্রুটি ঘটে গেলে স্ট্যান্ডার্ড এরর আউটপুটে মেসেজ মুদ্রণ করা | নির্দিষ্ট ত্রুটি কোডের জন্য একটি বর্ণনা রিটার্ন করা |
perror()
: এটি একটি স্ট্রিং গ্রহণ করে এবং স্ট্যান্ডার্ড এরর আউটপুটে ত্রুটির বর্ণনা সহ একটি মেসেজ মুদ্রণ করে। এটি সাধারনত সিস্টেম কলের পর ত্রুটি ঘটলে ব্যবহার করা হয়।strerror()
: এটি একটি ত্রুটি কোড (errno
) নিয়ে ত্রুটির বর্ণনা হিসেবে একটি স্ট্রিং রিটার্ন করে। এটি সাধারণত ত্রুটি কোডগুলি প্রসেস করার সময় ব্যবহার করা হয়।এই দুটি ফাংশনই সি প্রোগ্রামিংয়ে ত্রুটি ম্যানেজমেন্টে সহায়ক, বিশেষত যখন আপনি সিস্টেম কলগুলোর মাধ্যমে ত্রুটি পেতে চান এবং সেই ত্রুটির সঠিক বর্ণনা পেতে চান।
common.read_more